import xlrd
from xlutils.copy import copy
from xlutils.filter import process, XLRDReader, XLWTWriter

"""
带格式拷贝，测试发现公式和日期格式没有拷贝过来
"""

def copy2(wb):
    """
    拷贝excel并取得样式列表
    :param wb:
    :return:
    """
    w = XLWTWriter()
    process(
        XLRDReader(wb, 'unknown.xls'),
        w
    )
    return w.output[0][1], w.style_list


def generate_excel(path):
    # 打开模板excel文件 并保留原文件格式
    rdBook = xlrd.open_workbook(path, formatting_info=True)
    # rdSheet = rdBook.sheet_by_index(0)
    # nRows = rdSheet.nrows

    #  通过copy函数把测试工作表复制给了新的对象
    wtBook = copy(rdBook)

    # 获取拷贝及样式列表
    # wtBook, style_list = copy2(rdBook)
    # 获取xlwd可以操作的sheeet
    # wtSheet = wtBook.get_sheet(0)

    # 获取(0, 2)单元格的样式编号，并将样式应用于(nRows, 0)单元格
    # xf_index = rdSheet.cell_xf_index(0, 2)
    # wtSheet.write(nRows, 0, "你好，中国！", style_list[xf_index])

    wtBook.save(r'F:\Download\S71 银行业普惠金融重点领域贷款情况表-new.xls')

    return "处理成功"


if __name__ == '__main__':
    ret = generate_excel(r'F:\Download\S71 银行业普惠金融重点领域贷款情况表.xls')
    print(ret)
